package com.mida.bms.report.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.mida.bms.report.entity.DocReportClobContent;
import com.mida.tool.common.utils.LongToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * <h1>保存报告请求参数</h1>
 * <p>
 *
 * </p>
 *
 * @author jian.li on 2021/5/10 15:50
 */
@Data
@ApiModel(description = "保存报告请求参数")
public class DocReportPreservationRequest {

    @ApiModelProperty(value = "合单后存下的数据")
    private List<DocReportListVo> docReportListVos;

    @ApiModelProperty(value = "服务实例数据")
    private List<ServiceInstanceVo> serviceInstanceVoList;

    @ApiModelProperty(value = "申请单标识")
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long requestSoid;

    @ApiModelProperty(value = "患者soid(人标识)")
    private String personSoid;

    @ApiModelProperty(value = "登记标识")
    private Long registrationFormSoid;

    @ApiModelProperty(value = "登记号")
    private String registrationNo;

    @ApiModelProperty(value = "检查号")
    private Long examinationVisitSoid;

    @ApiModelProperty(value = "检查标识")
    private Long operatorSoid;

    @ApiModelProperty(value = "服务实例")
    private List<String> msdServiceInstanceSoidList;

    @ApiModelProperty(value = "结构化模板基本信息标识")
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long stTemplateInfoSoid;

    @ApiModelProperty(value = "报告vo")
    private DocReportVo docReportVo;

    @ApiModelProperty(value = "报告vo集合")
    private List<DocReportVo> docReportVoList;

    @ApiModelProperty(value = "模板名称")
    private String stTemplateName;

    @ApiModelProperty(value = "影像所见内容")
    private String phenomenonContent;

    @ApiModelProperty(value = "影像诊断内容")
    private String diagnosticContent;

    @ApiModelProperty(value = "报告存储信息标识")
    private Long stReportSoid;

    @ApiModelProperty(value = "特殊段落模块(影像所见,影响诊断...)")
    private List<DocReportClobContent> docReportClobContentList;

    @ApiModelProperty(value = "检查类型")
    private Long examType;

    @ApiModelProperty(value = "患者姓名(这里用来校验写报告期间上游是否修改了患者姓名)")
    private String patientName;

    @ApiModelProperty(value = "报告类型", required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long reportType;

    @ApiModelProperty(value = "上游患者信息", required = false)
    private Map<String,String> patientInfoMap;

    @ApiModelProperty(value = "上游报告流水号", required = false)
    private String reportVisitSoid;

    @ApiModelProperty(value = "操作用户soid", required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long employeeSoid;

    @ApiModelProperty(value = "危急值描述", required = false)
    private String criticalDesc;

    @ApiModelProperty(value = "报告自身状态")
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long reportStatus;

    @ApiModelProperty(value = "报告流转状态")
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long reportProcessStatus;

    @ApiModelProperty(value = "报告等级")
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long reportLevel;

    @ApiModelProperty(value = "图片质量")
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long pictureQuality;

    @ApiModelProperty(value = "报告阴阳性")
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long negativePositive;
}
